package com.alameda.common.base.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;

/**
 * 分页基类
 *
 * @author Lv
 * @date 2022/10/3
 */
@Data
@ApiModel(value = "PageDTO", description = "分页基类")
public class PageDTO extends BaseDTO implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 页码
     */
    @ApiModelProperty(value = "页码")
    private Integer pageNum;

    /**
     * 页面数据量
     */
    @ApiModelProperty(value = "页面数据量")
    private Integer pageSize;

    /**
     * 查询数量
     */
    @ApiModelProperty(value = "查询数量")
    private Integer loadCount;

    /**
     * 健壮性处理
     */
    public PageDTO() {
        // 页码处理
        if (pageNum == null || pageNum == 0) {
            this.setPageNum(1);
        }

        // 页面数据量处理
        if (pageSize == null || pageSize == 0) {
            this.setPageSize(10);
        }

        // 查询数据量
        if (loadCount == null || loadCount == 0) {
            this.setLoadCount(10);
        }
    }

    /**
     * 构造函数
     *
     * @param pageNum  页码
     * @param pageSize 页面数据量
     */
    public PageDTO(Integer pageNum, Integer pageSize) {
        this.pageNum = pageNum;
        this.pageSize = pageSize;
    }
}
